package com.egreen.common.serviceapi.user;

import com.egreen.common.pojo.DTO.user.ChangeStateDTO;
import com.egreen.common.pojo.VO.user.UserVO;
import com.egreen.common.pojo.entity.user.LocationDetail;
import com.egreen.common.pojo.entity.user.User;
import com.egreen.common.pojo.entity.user.UserLocation;
import com.egreen.common.pojo.entity.user.UserLoginAccount;


import java.util.List;

public interface IUserServiceApi {
    void changeState(ChangeStateDTO changeStateDTO);

    /**
     * 查看用户列表
     *
     * @return
     */
    List<UserVO> selectUserList(int states);

    /**
     * 将验证信息发送到手机或邮箱
     *
     * @param sendTo
     * @return 发送的验证码
     */
    String sendValidCodeSms(String sendTo);


    UserLocation selectLocationById(Long locationId);

    LocationDetail selectLocationDetailById(Long detailId);

    /**
     * 获取在传入城市的用户列表
     *
     * @param provinceId
     * @param city
     * @return
     */
    List<User> getUsersFromCity(Integer provinceId, String city);

    /**
     * 获取当前区域或社区的用户列表
     *
     * @param provinceId
     * @param city
     * @param district
     * @param community
     * @return
     */
    List<User> getUsersFromDetail(Integer provinceId, String city, String district, String community);

    User selectUserById(Long id);

    /**
     * 校验jwt,解析后首先检查redis中是否存在该token,存在则将传入的jwt返回
     *
     * @param jwtToken
     * @return
     */

    /**
     * 修改用户状态
     *
     * @param id
     */
    void changeUserStatus(int id);

    /**
     * 查询用户电话号码
     *
     * @param id
     * @return
     */
    UserLoginAccount selectLoginById(Long id);

}
